==
과 ===
의 차이
#resource
#javascript
작성일:2025. 4. 18.
수정일:2025. 5. 3.
두 연산자 모두 값을 비교하지만, 비교 방식에 차이가 있다.
예측 불가능한 타입 변환으로 인한 버그를 피하기 위해, 거의 항상 ===
(엄격 동등성 비교)를 사용하는 것이 좋다. ==
는 타입 변환 규칙을 정확히 이해하고 특별한 의도가 있을때만 제한적으로 사용해야 한다.
동등성 비교는 조건문 등에서 매우 빈번하게 사용하게 되므로, 두 연산자의 차이를 명확히 이해하고 ===
를 일관되게 사용하는 것이 코드의 안정성과 예측 가능서을 높이는 데 중요하다.
-
==
(추상 동등성 비교,Abstract Equality Comparison)비교화기 전에 피연산자들의 타입을 강제로 변환(type coercion)하여 같은 타입으로 만든 후 값을 비교한다. 이 과정에서 예상치 못하 결과가 나올수 있다. 예를 들어,
0 == false
는true
이고"" == false
도true
이며,null == undefined
도true
이다. -
===
(엄격 동등성 비교, Strict Equality Comparison)피연산자들의 타입 변환 없이 값과 타입을 모두 비교한다. 타입이 다르면 즉시
false
를 반환한다. 예를 들어,0 == false
는false
이고,null === undefined
도false
이다.